// package com.maxuxu.learningadmin.config;
//
// import de.codecentric.boot.admin.server.config.AdminServerProperties;
// import org.springframework.context.annotation.Configuration;
// import org.springframework.security.config.annotation.web.builders.HttpSecurity;
// import org.springframework.security.config.annotation.web.builders.WebSecurity;
// import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
// import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
// import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
// import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
//
// @EnableWebSecurity
// @Configuration(proxyBeanMethods = false)
// public class AdminSecurityConfig extends WebSecurityConfigurerAdapter {
//
//
//     private final String adminContextPath;
//
//     public AdminSecurityConfig(AdminServerProperties adminServerProperties) {
//         this.adminContextPath = adminServerProperties.getContextPath();
//     }
//
//     @Override
//     protected void configure(HttpSecurity http) throws Exception {
//         // @formatter:off
//         SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
//         successHandler.setTargetUrlParameter("redirectTo");
//         successHandler.setDefaultTargetUrl(adminContextPath + "/");
//
//         http.authorizeRequests()
//                 .antMatchers(adminContextPath + "/assets/**").permitAll()
//                 .antMatchers(adminContextPath + "/login").permitAll()
//                 .antMatchers(adminContextPath + "/instances/**").permitAll()
//                 .anyRequest().authenticated()
//                 .and()
//                 .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
//                 .logout().logoutUrl(adminContextPath + "/logout").and()
//                 .httpBasic().and()
//                 .csrf()
//                 .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
//                 .ignoringAntMatchers(
//                         adminContextPath + "/instances",
//                         adminContextPath + "/actuator/**"
//                 );
//         // @formatter:on
//     }
//
//     @Override
//     public void configure(WebSecurity web) {
//         web.ignoring().antMatchers("/actuator/**");
//     }
// }